package chwgigs;

public class J09_While {

	// while statement

	// 반복문 loop
	// 가끔 어떤 동작을 여러 번 수행해야 할 때가 있음
	// 코드를 복사해서 반복을 해서 해결되지 않는 문제 발생
	// 코드내 내용이 수정되면 그 복제도 수정해야 하는 귀찮은 일 발생

	// 이것에 대한 현명한 방법은 반복문 안에 코드를 넣는것이다
	// 즉 반복할 코드를 한 줄만 작성하고 컴파일러에게 이 코드를 몇 번이고 반복실행 하라고 지시 할 수 있음

	// <반복문의 종류>
	// while, do-while, for

	// <while>
	// while(조건식){
	// 문장 ;
	// }

	// 조건식의 결과가 참이면
	// 블록 안의 문제가 실행되고
	// 다시 조건식을 검사
	// 따라서 반복 실행을 중단하려면 조건식의 결과가 '거짓'이 되도록 만들거나
	// break문을 사용해야 한다.

	// 반복문의 처리 과정을 단계별로 파악하려면
	// 통합개발환경의 디버깅 기능을 이용하면 된다.

	// break, continue
	// break 문은 while do while for 문의 반복실행을 중단하기 위해 사용
	// break문을 아무대나 사용하면 컴파일 오류 발생

	// continue 문은 while, do-while, for 문의 현재 반복을 중단하고, 다음 반복의 시작으로 제어를 넘김

	public static void main(String[] args) {
		// 반복처리문을 사용하지 않았을때

		System.out.println("memento mori");
		System.out.println("memento mori");
		System.out.println("memento mori");
		System.out.println("memento mori");
		System.out.println("memento mori");

		// 문제1: 반복문을 사용하지 않고 시간은 금이라는 문장
		System.out.println("시간은 금");
		System.out.println("시간은 금");
		System.out.println("시간은 금");
		System.out.println("시간은 금");

		// 반복문을 이용하면 다음과 같음
		int count = 0;
		while (count < 5) {
			System.out.println("시간은 금이에요");
			count = count + 1;

		}

		int count2 = 1;
		while (count2 < 11) {
			System.out.println(count2);
			count2++;

		}

		// 문제 3 반복문을 이용해서 구구단의 19단을 출력
		// 19*1=19
		// 19*2=38
		// ... ....
		// 19*19=361

		int count3 = 1;
		while (count3 <= 19) {
			int result = count3 * 19;
			System.out.println(19 + "x" + count3 + "=" + result);
			count3++;

		}

		// 문제 4

		// 반복문과 break를 이용해서 1-10까지 출력하는 프로그램
		int count4 = 1;
		while (count4 <= 10) {
			System.out.println(count4);
			count4++;
		}
		// break를 사용하지 않음

		int count5 = 1;
		while (true) {
			if (count5 > 10)
				break;
			System.out.println(count5);
			count5++;
		}

		// break를 사용할 경우

		// 문제 5 //5만 빼고 1부터10까지 출력해라
		int count6 = 1;
		while (count6 <= 10) {
			if (count6 != 5)
				System.out.println(count6);

			++count6;
		} // contiue 를 사용하지 않았을때

		int count7 = 1;
		while (count7 <= 10) {
			if (count7 == 5) {
				++count7;
				continue;
			} //

			System.out.println(count7);
			++count7;
		} // continue를 사용할 경우

		// 과제
		// 문제 6 : 1-100사이에 짝수만 출력하는 프로그램

		int count8 = 1;

		while (count8 <= 100) {
			if (count8 % 2 == 0) {
				System.out.println(count8);

			}
			count8++;

		}

		System.out.println();

		// 문제7: 1-100사이에 홀수만 출력하는 프로그램

		int count9 = 1;
		while (count9 <= 100) {
			if (count9 % 2 != 0) {
				System.out.println(count9);

			}
			count9++;
		}

	}
}
